1. Field of the Invention
The present invention relates to a system, method, and program for analyzing proposed interface ports to a device and, in particular, to a storage controller that controls access to an Input/Output (I/O) device.
2. Description of the Related Art
Host computer systems may perform input/output (I/O) operations against a storage unit, such as a Direct Access Storage Device (DASD), which is comprised of numerous interconnected hard disk drives (HDDs) that form a single mass storage space. In such systems, a storage controller, also referred to as a control unit, manages input/output (I/O) operations between the host systems and the DASD. Examples of control units include the International Business Machines (xe2x80x9cIBMxe2x80x9d) Enterprise Storage Server, described in the publication xe2x80x9cIBM Enterprise Storage Server: Introduction and Planning Guidexe2x80x9d, IBM document no. GC26-7294-02 (IBM Copyright, November 1999) and the IBM 3990 Storage Controller, described in IBM publication, xe2x80x9cIBM 3990 Storage Control Reference (Models 1, 2, and 3), IBM document no. GA32-0099-06 (Copyright IBM Corp. 1988, 1994), which publications are incorporated herein by reference in its entirety.
The hosts include a channel subsystem that directs the flow of data between the host main storage and the storage controllers. In current implementations, each host may have up to 256 channels. Each channel is identified by a channel path identifier (CHPID). A channel comprises a host adaptor into which a cable is connected that leads directly to an interface port on the storage controller or a port in a switch that links to the storage controller. A channel path comprises the physical connection from a host adaptor to a port on a switch, such as an ESCON director, and the connection from another port on the same switch to an interface port in the control unit. In current implementations, a channel path in the host may be dynamically assigned to one physical path comprising the connection links from the host adaptor to the switch port, and then from another port on the same switch to the interface port in the control unit. The commonly assigned and co-pending U.S. patent application Ser. No. 09/407,544, entitled xe2x80x9cMethod, System, and Program Products for Managing I/O Configurations of a Computing Environmentxe2x80x9d filed on Sep. 28, 1999 by P. B. Yocom, H. M. Yudenfriend, W. J. Rooney, Richard Cwiakala, which patent is incorporated herein by reference in its entirety, describes an architecture for allowing the dynamic assignment of channel paths in the host to different physical paths from the host to the control unit.
The above patent mentions that one goal of dynamically assigning host channel paths to a physical path is to find the path assignment for a channel path that provides the best availability, i.e., avoids any single point of failures. For this reason, there is a need in the art to determine the availability of the storage controller resources to use in determining the most highly available interface to the storage controller.
To determine the availability of storage controller resources, preferred embodiments disclose a system, method, and program for analyzing proposed interface ports to a device. Failure boundary data is read from the device indicating at least one failure boundary of a proposed interface to the device and a mask is accessed from the device. The accessed mask is applied to the failure boundary data for the proposed interface and existing interfaces to determine at least one failure boundary for the proposed interface and existing interfaces. A determination is made of a number of single points of failure for the proposed interface port from the determined failure boundaries the proposed interface has in common with interface ports currently used to access the device. A further determination is made of a relative availability rating based on the number of single points of failure for each proposed interface port.
In further embodiments, accessing product information for the device comprises comparing the product information with fields in a table to determine a matching entry in the table. Each entry in the table provides at least one mask to apply to the failure boundary data to determine at least one failure boundary of the existing and proposed interfaces. The mask from the table is applied to the failure boundary data if there is a matching entry in the table. The mask is only accessed from the device if there is not a matching entry in the table.
Still further, the accessed product information is capable of indicating multiple characteristics of the device and the fields for an entry in the table are capable of providing one or more device characteristics. In such case, a matching entry comprises an entry where each entry characteristic field matches corresponding accessed product information characteristics.
Preferred embodiments provide a technique for determining the relative availability of proposed interfaces to a device, such as a control unit, using data made available from the device indicating failure boundaries of the proposed interface. The failure boundaries would comprise specified points of failure and repair in the control unit that may or may not affect the operation of other components. For instance, in control unit implementations, the failure and repair boundaries may comprise a cluster, an I/O bay within the cluster, and an interface card within the I/O bay. For instance, a cluster can be taken off-line for repair or as a result of a failure without affecting the I/O bays and interface cards in other clusters and an I/O bay can be taken off-line without affecting interface cards in other I/O bays. Preferred embodiments determine the availability for different interfaces to the control unit by considering whether the failure and repair boundaries of the proposed interface match the failure and repair boundaries of existing interfaces to the control units that are already used by a channel path in the host.
Control unit implementations provide descriptive data and masks that can be used by a host to determine service and power boundaries for the different proposed interfaces to the device. This data can be used for determining which interface to the device to select for the next channel to add to a host. This consideration of the xe2x80x9cavailability indexxe2x80x9d of the interface may or may not be considered with the availability for upstream components, such as any switches and host adaptors in determining which path to select for the host.